const waitOn = require('wait-on');
const path = require('path');
const {spawn} = require('child_process');

require('dotenv-expand')(
require('dotenv')
  .config({
    path: path.join(__dirname, '../../', '.env.development')
  })
)

//https://www.npmjs.com/package/wait-on#Node.js%20API%20usage
var opts = {
  resources: [
    process.env.MAIN_WINDOW_URL
  ],
  // validateStatus: function (status) {
  //   return status >= 200 && status < 300; // default if not provided
  // }
}

//todo 之所以不直接用npm命令, 是因为暂时没要找到在npm命令中将环境变量作为字符串(url)拼接的方法
waitOn(opts)
  .then(function () {
    // once here, all resources are available
    spawn(
      process.platform === 'win32' ? 'npm.cmd' : 'npm',
      ['run', 'start:main'],
      {
        //设置当前工作目录, 即在命令行中哪个位置执行上面的spawn指定的命令
        cwd: path.join(__dirname, '../', '../')
        , stdio: 'inherit'
      }
    );
  })
  .catch(function (err) {
    console.error('waitOn err:', err);
  });
